perm filename N[GEM,BGB]1 blob sn#032381 filedate 1973-04-01 generic text, type T, neo UTF8
00100	
00200		DEFINE LEFT $(NAM,WRD,Z){
00300		IFIDN<><Z><DEFINE NAM(A,Q)<CAR A,WRD(Q)>>
00400		IFDIF<><Z><DEFINE NAM(A,Q)<NIP A,WRD(Q)>>
00500		DEFINE NAM$.(A,Q)<DIP A,WRD(Q)>}
00600	
00700		DEFINE RIGHT $(NAM,WRD,Z){
00800		IFIDN<><Z><DEFINE NAM(A,Q)<CDR A,WRD(Q)>>
00900		IFDIF<><Z><DEFINE NAM(A,Q)<NAP A,WRD(Q)>>
01000		DEFINE NAM$.(A,Q)<DAP A,WRD(Q)>}
01100	
01200	;DEFINE GEM LINK NAMES.
01300	
01400		LEFT(X1DC,-3,N)↔	RIGHT(Y1DC,-3,N)
01500		LEFT(X2DC,-2,N)↔	RIGHT(Y2DC,-2,N)
01600		LEFT(TYPE,0)
01700		DEFINE $TYPE(Q,E)<LDB Q,[POINT 4,(E),35]>
01800		LEFT(NFACE,1)↔		RIGHT(PFACE,1)
01900	   DEFINE XDC (Q,E)<HLLE Q,1(E)>↔DEFINE YDC (Q,E)<HRLE Q,1(E)>
02000	   DEFINE XDC.(Q,E)<HLLM Q,1(E)>↔DEFINE YDC.(Q,E)<HLRM Q,1(E)>
02100		LEFT(NED,2)↔		RIGHT(PED,2)
02200		LEFT(NCNT,2,N)
02300		LEFT(NVT,3)↔		RIGHT(PVT,3)
02400		LEFT(NCW,4)↔		RIGHT(PCW,4)
02500		LEFT(DAD,4)↔		RIGHT(SON,4)
02600		LEFT(NCCW,5)↔		RIGHT(PCCW,5)
02700		LEFT(BRO,5)↔		RIGHT(SIS,5)
02800		LEFT(ALT,6)↔		RIGHT(ALT2,6)
02900		RIGHT(FRAME,6)↔		RIGHT(POTEN,6)
03000		LEFT(CW,7)↔		RIGHT(CCW,7)
     

00100	; NAMES OF NODE DATA WORDS.
00200	
00300		↓AA ←← ↓XWC ←← -3
00400		↓BB ←← ↓YWC ←← -2
00500		↓CC ←← ↓ZWC ←← -1
00600	
00700		↓QQ ←← 7
00800		↓KK ←← 3
00900	
01000		↓XPP ←← 4↔	↓YPP ←← 5↔	↓ZPP ←← 6
01100		↓IX←←0↔ 	↓IY←←1↔ 	↓IZ←←2
01200		↓JX←←3↔ 	↓JY←←4↔ 	↓JZ←←5
01300		↓KX←←6↔ 	↓KY←←7↔ 	↓KZ←←8
01400	
01500	;NODE SERIAL TYPE NUMBERS.
01600	
01700		↓$FRAME		←←	0
01800		↓$EMPTY		←←	1
01900		↓$UNIVERSE	←←	2
02000		↓$SUN		←←	3
02100	
02200		↓$CAMERA	←←	4
02300		↓$WORLD		←←	5
02400		↓$WINDOW	←←	6
02500		↓$IMAGE		←←	7
02600	
02700		↓$TEXT		←←	10
02800		↓$XNODE		←←	11
02900		↓$YNODE		←←	12
03000		↓$ZNODE		←←	13
03100	
03200		↓$BODY 		←←	14
03300		↓$FACE 		←←	15
03400		↓$EDGE 		←←	16
03500		↓$VERT 		←←	17
     

00100	;TYPE BIT OPERATIONS.
00200	
00300		DEFINE MARK(Q,BITS){
00400		IFE BITS⊗-22,{LACI BITS}
00500		IFN BITS⊗-22,{SLACI(BITS)}
00600		IORM(Q)}
00700	
00800		DEFINE MARKZ(Q,BITS){
00900		IFE BITS⊗-22,{LACI BITS}
01000		IFN BITS⊗-22,{SLACI(BITS)}
01100		ANDCAM (Q)}
01200	
01300		DEFINE TEST(Q,BITS){
01400		LAC(Q)
01500		IFE BITS⊗-22,{TRNN BITS }
01600		IFN BITS⊗-22,{TLNN(BITS)}}
01700	
01800		DEFINE TESTZ(Q,BITS){
01900		LAC(Q)
02000		IFE BITS⊗-22,{TRNE BITS }
02100		IFN BITS⊗-22,{TLNE(BITS)}}
02200	
     

00100	;PROPERTY-TYPE BITS.
00200		↓PBIT ←← 1B30		;PART.
00300		↓BBIT ←← 1B17
00400		↓FBIT ←← 1B16
00500		↓EBIT ←← 1B15
00600		↓VBIT ←← 1B14
00700	
00800		↓PZZ ←← 1B1
00900		↓NZZ ←← 1B10
01000	
01100		↓FOLDED ←← 1B11
01200		↓VISIBLE ←← 1B12
01300		↓POTENT ←← 1B13
01400		↓DARKEN ←← 1B3
01500	
01600		↓NORTH ←← 1B5
01700		↓SOUTH ←← 1B6
01800		↓EAST  ←← 1B7
01900		↓WEST  ←← 1B8
02000		↓NSEW  ←← 17B8
02100	
02200		↓JUTBIT ←← 1B3
02300		↓JOTBIT ←← 1B4
02400		DEFINE HIDE(Q){
02500		SLACI(3B13)↔ANDCAM(Q)}
02600	
02700		↓TMPBIT ←← 1B2
02800		↓BDLBIT ←← 1B1	;BODY OPERATION DISABLE LOCOR ACTION.
02900		↓BDVBIT ←← 1B3	;BODY OPERATION DISABLE VERTEX ACTION.
03000		↓BDPBIT ←← 1B4	;BODY OPERATION DISABLE PARTS ACTION.
03100	
03200		↓TXTBIT ←← 1B24	;TEXT VERTEX.